package com.itaming.lycheeframework.mybatisplus.autofill;

import com.baomidou.mybatisplus.core.handlers.StrictFill;

import java.util.Collections;
import java.util.List;

/**
 * 自动填充提供者
 *
 * @author A.Ming
 */
public interface AutoFillProvider {

    /**
     * 获取当前用户ID
     *
     * @return 当前用户ID
     */
    Long getCurrentUserId();

    /**
     * 插入操作自定义填充字段
     *
     * @return 填充字段列表
     */
    default List<StrictFill<?, ?>> getInsertFills() {
        return Collections.emptyList();
    }

    /**
     * 更新操作自定义填充字段
     *
     * @return 填充字段列表
     */
    default List<StrictFill<?, ?>> getUpdateFills() {
        return Collections.emptyList();
    }

    /**
     * 默认实现
     */
    class Impl implements AutoFillProvider {

        @Override
        public Long getCurrentUserId() {
            return -1L;
        }

    }

}
